const DateFn = {};
/**
 * 判断date时间对象是否存在，如果不存在则创建并返回
 * @param date:当前时间对象
 * @returns {*}
 */
DateFn.isDate = (date) =>{
    if (!date)
        return new Date();
    return date;
};
/**
 * 获取年份
 * @param date:当前时间对象，如果该参数不存在，重新创建
 * @returns {number}
 */
DateFn.getFullYear = (date) => {
    return DateFn.isDate(date).getFullYear();
};
/**
 * 获取月份
 * @param date：当前时间对象
 * @returns {number}
 */
DateFn.getMonth = (date) => {
    return DateFn.isDate(date).getMonth();
};
/**
 * 获取天
 * @param date
 * @returns {number}
 */
DateFn.getDate = (date) => {
    return DateFn.isDate(date).getDate();
};
/**
 * 获取 Date 对象的小时 (0 ~ 23)。
 * @param date
 * @returns {number}
 */
DateFn.getHours = (date) => {
    return DateFn.isDate(date).getHours();
};
/**
 * 获取Date 对象的分钟 (0 ~ 59)。
 * @param date
 * @returns {number}
 */
DateFn.getMinutes = (date) => {
    return DateFn.isDate(date).getMinutes();
};
/**
 * 获取Date 对象的秒数 (0 ~ 59)。
 * @param date
 * @returns {number}
 */
DateFn.getSeconds = (date) => {
    return DateFn.isDate(date).getSeconds();
};
/**
 * Date 对象的毫秒(0 ~ 999)。
 * @param date
 * @returns {number}
 */
DateFn.getMilliseconds = (date) => {
    return DateFn.isDate(date).getMilliseconds();
};
/**
 * 计算是否是闰年；
 * 计算方法：
 *  1：能被4整除而不能被100整除
 *  2：能被400整除
 * @param year:年份
 * @returns {boolean}
 */
DateFn.isLeapYear = (year) => {
    if ( !typeof year === "number")
        console.error("年份只能为数值类型！");
    if ( year < 1790 )
        console.error("年份不能低于1790年！");
    // 返回是否闰年
    return (year % 4 === 0 && year % 100 !== 0) || (year % 400 === 0);
};
/**
 * 获取月份第一天是星期几
 * @param date
 * @returns {number}
 */
DateFn.getWeekDayOfMonth = (date) => {
    let _date = DateFn.isDate(date);
    return new Date(DateFn.getFullYear(_date),DateFn.getMonth(_date),1).getDay();
};
/**
 * 获取当前时间
 */
DateFn.getCurrentDate=(date)=>{
    let _date = DateFn.isDate(date);

    return _date;
};






export default DateFn;

